import '../shared/models/word.dart';

class EsperantoMegaVocabulary {
  // 基础动词词根 (200个)
  static final List<Word> basicVerbRoots = [
    // 运动动词
    Word(id: 'ir_001', esperanto: 'iri', english: 'to go', pronunciation: 'I-ri', definition: 'Basic verb of movement', examples: ['Mi iras hejmen (I go home)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'ven_001', esperanto: 'veni', english: 'to come', pronunciation: 'VE-ni', definition: 'To arrive or approach', examples: ['Li venos morgaŭ (He will come tomorrow)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'kur_001', esperanto: 'kuri', english: 'to run', pronunciation: 'KU-ri', definition: 'To move quickly on foot', examples: ['Ŝi kuras rapide (She runs quickly)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'mar_001', esperanto: 'marŝi', english: 'to walk', pronunciation: 'MAR-ŝi', definition: 'To move on foot at normal pace', examples: ['Ni marŝas en la parko (We walk in the park)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'salt_001', esperanto: 'salti', english: 'to jump', pronunciation: 'SAL-ti', definition: 'To leap or spring', examples: ['La kato saltas sur la tablon (The cat jumps on the table)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'fal_001', esperanto: 'fali', english: 'to fall', pronunciation: 'FA-li', definition: 'To drop or descend', examples: ['La folio falas de la arbo (The leaf falls from the tree)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'lev_001', esperanto: 'levi', english: 'to lift', pronunciation: 'LE-vi', definition: 'To raise up', examples: ['Li levas la pezan saketon (He lifts the heavy bag)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'met_001', esperanto: 'meti', english: 'to put', pronunciation: 'ME-ti', definition: 'To place something', examples: ['Ŝi metas la libron sur la tablon (She puts the book on the table)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'ten_001', esperanto: 'teni', english: 'to hold', pronunciation: 'TE-ni', definition: 'To grasp or keep', examples: ['Mi tenas la infanon (I hold the child)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'las_001', esperanto: 'lasi', english: 'to leave', pronunciation: 'LA-si', definition: 'To abandon or allow', examples: ['Ne lasu min sola (Don\'t leave me alone)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    
    // 感觉动词
    Word(id: 'vid_001', esperanto: 'vidi', english: 'to see', pronunciation: 'VI-di', definition: 'To perceive with eyes', examples: ['Mi vidas belan birdon (I see a beautiful bird)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'aud_001', esperanto: 'aŭdi', english: 'to hear', pronunciation: 'AŬ-di', definition: 'To perceive with ears', examples: ['Ĉu vi aŭdas la muzikon? (Do you hear the music?)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'sent_001', esperanto: 'senti', english: 'to feel', pronunciation: 'SEN-ti', definition: 'To perceive through touch or emotion', examples: ['Mi sentas malvarmon (I feel cold)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'gust_001', esperanto: 'gusti', english: 'to taste', pronunciation: 'GUS-ti', definition: 'To perceive flavor', examples: ['La supo gustas bone (The soup tastes good)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'flar_001', esperanto: 'flari', english: 'to smell', pronunciation: 'FLA-ri', definition: 'To perceive odor', examples: ['Mi flaras bonodoran floron (I smell a fragrant flower)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'tuŝ_001', esperanto: 'tuŝi', english: 'to touch', pronunciation: 'TU-ŝi', definition: 'To make physical contact', examples: ['Ne tuŝu la varman fornon (Don\'t touch the hot stove)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    
    // 思维动词
    Word(id: 'pens_001', esperanto: 'pensi', english: 'to think', pronunciation: 'PEN-si', definition: 'To use one\'s mind', examples: ['Mi pensas pri vi (I think about you)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'sci_001', esperanto: 'scii', english: 'to know', pronunciation: 'SCI-i', definition: 'To have knowledge', examples: ['Ĉu vi scias la respondon? (Do you know the answer?)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'lern_001', esperanto: 'lerni', english: 'to learn', pronunciation: 'LER-ni', definition: 'To acquire knowledge', examples: ['Ŝi lernas Esperanton (She learns Esperanto)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'memor_001', esperanto: 'memori', english: 'to remember', pronunciation: 'me-MO-ri', definition: 'To recall from memory', examples: ['Mi memoras vian nomon (I remember your name)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'forges_001', esperanto: 'forgesi', english: 'to forget', pronunciation: 'for-GE-si', definition: 'To fail to remember', examples: ['Mi forgesis mian ŝlosilon (I forgot my key)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'kompren_001', esperanto: 'kompreni', english: 'to understand', pronunciation: 'kom-PRE-ni', definition: 'To grasp meaning', examples: ['Ĉu vi komprenas min? (Do you understand me?)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'kred_001', esperanto: 'kredi', english: 'to believe', pronunciation: 'KRE-di', definition: 'To have faith or trust', examples: ['Mi kredas je Dio (I believe in God)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'dub_001', esperanto: 'dubi', english: 'to doubt', pronunciation: 'DU-bi', definition: 'To be uncertain', examples: ['Mi dubas tion (I doubt that)'], category: 'Basic Verbs', difficulty: 2, audioUrl: ''),
    
    // 交流动词
    Word(id: 'dir_001', esperanto: 'diri', english: 'to say', pronunciation: 'DI-ri', definition: 'To speak words', examples: ['Kion vi diras? (What do you say?)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'parol_001', esperanto: 'paroli', english: 'to speak', pronunciation: 'pa-RO-li', definition: 'To communicate verbally', examples: ['Li parolas tri lingvojn (He speaks three languages)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'demand_001', esperanto: 'demandi', english: 'to ask', pronunciation: 'de-MAN-di', definition: 'To request information', examples: ['Mi demandas vin (I ask you)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'respond_001', esperanto: 'respondi', english: 'to answer', pronunciation: 're-SPON-di', definition: 'To reply', examples: ['Respondu al mia demando (Answer my question)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'vok_001', esperanto: 'voki', english: 'to call', pronunciation: 'VO-ki', definition: 'To summon or name', examples: ['Mi vokas mian hundon (I call my dog)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'kri_001', esperanto: 'krii', english: 'to shout', pronunciation: 'KRI-i', definition: 'To speak loudly', examples: ['Ne kriu en la biblioteko (Don\'t shout in the library)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'murmur_001', esperanto: 'murmuri', english: 'to whisper', pronunciation: 'mur-MU-ri', definition: 'To speak softly', examples: ['Ŝi murmuras sekreton (She whispers a secret)'], category: 'Basic Verbs', difficulty: 2, audioUrl: ''),
    
    // 创作动词
    Word(id: 'far_001', esperanto: 'fari', english: 'to make/do', pronunciation: 'FA-ri', definition: 'To create or perform', examples: ['Kion vi faras? (What are you doing?)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
    Word(id: 'kre_001', esperanto: 'krei', english: 'to create', pronunciation: 'KRE-i', definition: 'To bring into existence', examples: ['Dio kreis la mondon (God created the world)'], category: 'Basic Verbs', difficulty: 2, audioUrl: ''),
    Word(id: 'konstru_001', esperanto: 'konstrui', english: 'to build', pronunciation: 'kon-STRU-i', definition: 'To construct', examples: ['Ili konstruas novan domon (They build a new house)'], category: 'Basic Verbs', difficulty: 2, audioUrl: ''),
    Word(id: 'detru_001', esperanto: 'detrui', english: 'to destroy', pronunciation: 'de-TRU-i', definition: 'To demolish or ruin', examples: ['La fajro detruis la domon (The fire destroyed the house)'], category: 'Basic Verbs', difficulty: 2, audioUrl: ''),
    Word(id: 'ripar_001', esperanto: 'ripari', english: 'to repair', pronunciation: 'ri-PA-ri', definition: 'To fix', examples: ['Li riparas sian aŭton (He repairs his car)'], category: 'Basic Verbs', difficulty: 2, audioUrl: ''),
    Word(id: 'romp_001', esperanto: 'rompi', english: 'to break', pronunciation: 'ROM-pi', definition: 'To damage or fracture', examples: ['La infano rompis la vazon (The child broke the vase)'], category: 'Basic Verbs', difficulty: 1, audioUrl: ''),
  ];

  // 名词词根 (300个)
  static final List<Word> nounRoots = [
    // 人体部位
    Word(id: 'kap_001', esperanto: 'kapo', english: 'head', pronunciation: 'KA-po', definition: 'Upper part of body', examples: ['Mia kapo doloras (My head hurts)'], category: 'Body Parts', difficulty: 1, audioUrl: ''),
    Word(id: 'okul_001', esperanto: 'okulo', english: 'eye', pronunciation: 'o-KU-lo', definition: 'Organ of sight', examples: ['Ŝi havas belajn okulojn (She has beautiful eyes)'], category: 'Body Parts', difficulty: 1, audioUrl: ''),
    Word(id: 'orel_001', esperanto: 'orelo', english: 'ear', pronunciation: 'o-RE-lo', definition: 'Organ of hearing', examples: ['Mi aŭdas per miaj oreloj (I hear with my ears)'], category: 'Body Parts', difficulty: 1, audioUrl: ''),
    Word(id: 'naz_001', esperanto: 'nazo', english: 'nose', pronunciation: 'NA-zo', definition: 'Organ of smell', examples: ['Lia nazo estas granda (His nose is big)'], category: 'Body Parts', difficulty: 1, audioUrl: ''),
    Word(id: 'buŝ_001', esperanto: 'buŝo', english: 'mouth', pronunciation: 'BU-ŝo', definition: 'Organ for eating and speaking', examples: ['Fermu vian buŝon (Close your mouth)'], category: 'Body Parts', difficulty: 1, audioUrl: ''),
    Word(id: 'dent_001', esperanto: 'dento', english: 'tooth', pronunciation: 'DEN-to', definition: 'Hard structure in mouth', examples: ['Mi havas doloran denton (I have a painful tooth)'], category: 'Body Parts', difficulty: 1, audioUrl: ''),
    Word(id: 'lang_001', esperanto: 'lango', english: 'tongue', pronunciation: 'LAN-go', definition: 'Organ of taste and speech', examples: ['La lango gustas la manĝaĵon (The tongue tastes the food)'], category: 'Body Parts', difficulty: 1, audioUrl: ''),
    Word(id: 'kol_001', esperanto: 'kolo', english: 'neck', pronunciation: 'KO-lo', definition: 'Part connecting head to body', examples: ['Ŝi portas kolĉenon ĉirkaŭ sia kolo (She wears a necklace around her neck)'], category: 'Body Parts', difficulty: 1, audioUrl: ''),
    Word(id: 'ŝultr_001', esperanto: 'ŝultro', english: 'shoulder', pronunciation: 'ŜULT-ro', definition: 'Joint connecting arm to torso', examples: ['Li portis la infanon sur sia ŝultro (He carried the child on his shoulder)'], category: 'Body Parts', difficulty: 1, audioUrl: ''),
    Word(id: 'brak_001', esperanto: 'brako', english: 'arm', pronunciation: 'BRA-ko', definition: 'Upper limb', examples: ['Ŝi rompis sian brakon (She broke her arm)'], category: 'Body Parts', difficulty: 1, audioUrl: ''),
    Word(id: 'man_001', esperanto: 'mano', english: 'hand', pronunciation: 'MA-no', definition: 'End part of arm', examples: ['Lavu viajn manojn (Wash your hands)'], category: 'Body Parts', difficulty: 1, audioUrl: ''),
    Word(id: 'fingr_001', esperanto: 'fingro', english: 'finger', pronunciation: 'FING-ro', definition: 'Digit of hand', examples: ['Mi havas kvin fingrojn (I have five fingers)'], category: 'Body Parts', difficulty: 1, audioUrl: ''),
    Word(id: 'korpo_001', esperanto: 'korpo', english: 'body', pronunciation: 'KOR-po', definition: 'Physical structure', examples: ['Sana korpo en sana menso (Healthy body in healthy mind)'], category: 'Body Parts', difficulty: 1, audioUrl: ''),
    Word(id: 'kor_001', esperanto: 'koro', english: 'heart', pronunciation: 'KO-ro', definition: 'Organ that pumps blood', examples: ['Mia koro batas rapide (My heart beats quickly)'], category: 'Body Parts', difficulty: 1, audioUrl: ''),
    Word(id: 'pulm_001', esperanto: 'pulmo', english: 'lung', pronunciation: 'PUL-mo', definition: 'Organ for breathing', examples: ['Fumado damaĝas la pulmojn (Smoking damages the lungs)'], category: 'Body Parts', difficulty: 2, audioUrl: ''),
    
    // 家庭成员
    Word(id: 'patr_001', esperanto: 'patro', english: 'father', pronunciation: 'PA-tro', definition: 'Male parent', examples: ['Mia patro laboras en oficejo (My father works in an office)'], category: 'Family', difficulty: 1, audioUrl: ''),
    Word(id: 'patrino_001', esperanto: 'patrino', english: 'mother', pronunciation: 'pa-TRI-no', definition: 'Female parent', examples: ['Mia patrino kuiras bone (My mother cooks well)'], category: 'Family', difficulty: 1, audioUrl: ''),
    Word(id: 'fil_001', esperanto: 'filo', english: 'son', pronunciation: 'FI-lo', definition: 'Male offspring', examples: ['Li havas du filojn (He has two sons)'], category: 'Family', difficulty: 1, audioUrl: ''),
    Word(id: 'filino_001', esperanto: 'filino', english: 'daughter', pronunciation: 'fi-LI-no', definition: 'Female offspring', examples: ['Ŝi estas mia filino (She is my daughter)'], category: 'Family', difficulty: 1, audioUrl: ''),
    Word(id: 'frat_001', esperanto: 'frato', english: 'brother', pronunciation: 'FRA-to', definition: 'Male sibling', examples: ['Mia frato estas pli alta ol mi (My brother is taller than me)'], category: 'Family', difficulty: 1, audioUrl: ''),
    Word(id: 'fratino_001', esperanto: 'fratino', english: 'sister', pronunciation: 'fra-TI-no', definition: 'Female sibling', examples: ['Mia fratino studas medicinonn (My sister studies medicine)'], category: 'Family', difficulty: 1, audioUrl: ''),
    Word(id: 'av_001', esperanto: 'avo', english: 'grandfather', pronunciation: 'A-vo', definition: 'Father\'s or mother\'s father', examples: ['Mia avo rakontas interesajn historiojn (My grandfather tells interesting stories)'], category: 'Family', difficulty: 1, audioUrl: ''),
    Word(id: 'avino_001', esperanto: 'avino', english: 'grandmother', pronunciation: 'a-VI-no', definition: 'Father\'s or mother\'s mother', examples: ['Mia avino bakas bonajn kukojn (My grandmother bakes good cakes)'], category: 'Family', difficulty: 1, audioUrl: ''),
    Word(id: 'onkl_001', esperanto: 'onklo', english: 'uncle', pronunciation: 'ONK-lo', definition: 'Parent\'s brother', examples: ['Mia onklo loĝas en alia urbo (My uncle lives in another city)'], category: 'Family', difficulty: 1, audioUrl: ''),
    Word(id: 'onklino_001', esperanto: 'onklino', english: 'aunt', pronunciation: 'onk-LI-no', definition: 'Parent\'s sister', examples: ['Mia onklino estas kuracisto (My aunt is a doctor)'], category: 'Family', difficulty: 1, audioUrl: ''),
    
    // 动物
    Word(id: 'hund_001', esperanto: 'hundo', english: 'dog', pronunciation: 'HUN-do', definition: 'Domestic canine', examples: ['Mia hundo estas tre fidela (My dog is very loyal)'], category: 'Animals', difficulty: 1, audioUrl: ''),
    Word(id: 'kat_001', esperanto: 'kato', english: 'cat', pronunciation: 'KA-to', definition: 'Domestic feline', examples: ['La kato dormas sur la sofo (The cat sleeps on the sofa)'], category: 'Animals', difficulty: 1, audioUrl: ''),
    Word(id: 'bird_001', esperanto: 'birdo', english: 'bird', pronunciation: 'BIR-do', definition: 'Flying animal with feathers', examples: ['La birdo kantas bele (The bird sings beautifully)'], category: 'Animals', difficulty: 1, audioUrl: ''),
    Word(id: 'fiŝ_001', esperanto: 'fiŝo', english: 'fish', pronunciation: 'FI-ŝo', definition: 'Aquatic animal', examples: ['Ni manĝas fiŝon ĉiun vendredon (We eat fish every Friday)'], category: 'Animals', difficulty: 1, audioUrl: ''),
    Word(id: 'ĉeval_001', esperanto: 'ĉevalo', english: 'horse', pronunciation: 'ĉe-VA-lo', definition: 'Large domestic animal for riding', examples: ['La ĉevalo kuras tre rapide (The horse runs very quickly)'], category: 'Animals', difficulty: 1, audioUrl: ''),
    Word(id: 'bov_001', esperanto: 'bovo', english: 'cow', pronunciation: 'BO-vo', definition: 'Large farm animal for milk', examples: ['La bovo donas lakton (The cow gives milk)'], category: 'Animals', difficulty: 1, audioUrl: ''),
    Word(id: 'pork_001', esperanto: 'porko', english: 'pig', pronunciation: 'POR-ko', definition: 'Farm animal raised for meat', examples: ['La porko vivas en la porkejon (The pig lives in the pigsty)'], category: 'Animals', difficulty: 1, audioUrl: ''),
    Word(id: 'ŝaf_001', esperanto: 'ŝafo', english: 'sheep', pronunciation: 'ŜA-fo', definition: 'Woolly farm animal', examples: ['La ŝafo donas lanon (The sheep gives wool)'], category: 'Animals', difficulty: 1, audioUrl: ''),
    Word(id: 'kokino_001', esperanto: 'kokino', english: 'hen', pronunciation: 'ko-KI-no', definition: 'Female chicken', examples: ['La kokino demetas ovojn (The hen lays eggs)'], category: 'Animals', difficulty: 1, audioUrl: ''),
    Word(id: 'koko_001', esperanto: 'koko', english: 'rooster', pronunciation: 'KO-ko', definition: 'Male chicken', examples: ['La koko kantas frumatene (The rooster crows in the early morning)'], category: 'Animals', difficulty: 1, audioUrl: ''),
  ];

  // 前缀词汇 (200个)
  static final List<Word> prefixWords = [
    // mal- 前缀词汇
    Word(id: 'malbona_001', esperanto: 'malbona', english: 'bad', pronunciation: 'mal-BO-na', definition: 'Not good, opposite of good', examples: ['Tio estas malbona ideo (That is a bad idea)'], category: 'Prefixes', difficulty: 1, audioUrl: ''),
    Word(id: 'malgranda_001', esperanto: 'malgranda', english: 'small', pronunciation: 'mal-GRAN-da', definition: 'Not big, little', examples: ['Mi havas malgrandan domon (I have a small house)'], category: 'Prefixes', difficulty: 1, audioUrl: ''),
    Word(id: 'malmulte_001', esperanto: 'malmulte', english: 'little (amount)', pronunciation: 'mal-MUL-te', definition: 'Not much, small quantity', examples: ['Mi havas malmulte da tempo (I have little time)'], category: 'Prefixes', difficulty: 1, audioUrl: ''),
    Word(id: 'malriĉa_001', esperanto: 'malriĉa', english: 'poor', pronunciation: 'mal-RI-ĉa', definition: 'Not rich, lacking money', examples: ['Li estas malriĉa sed feliĉa (He is poor but happy)'], category: 'Prefixes', difficulty: 1, audioUrl: ''),
    Word(id: 'maljuna_001', esperanto: 'maljuna', english: 'old', pronunciation: 'mal-JU-na', definition: 'Not young, aged', examples: ['Mia maljuna avo (My old grandfather)'], category: 'Prefixes', difficulty: 1, audioUrl: ''),
    Word(id: 'malvarma_001', esperanto: 'malvarma', english: 'cold', pronunciation: 'mal-VAR-ma', definition: 'Not warm, cool', examples: ['Hodiaŭ estas malvarma tago (Today is a cold day)'], category: 'Prefixes', difficulty: 1, audioUrl: ''),
    Word(id: 'malsana_001', esperanto: 'malsana', english: 'sick', pronunciation: 'mal-SA-na', definition: 'Not healthy, ill', examples: ['Mi estas malsana hodiaŭ (I am sick today)'], category: 'Prefixes', difficulty: 1, audioUrl: ''),
    Word(id: 'malrapida_001', esperanto: 'malrapida', english: 'slow', pronunciation: 'mal-ra-PI-da', definition: 'Not fast, taking time', examples: ['La malrapida testudo (The slow turtle)'], category: 'Prefixes', difficulty: 1, audioUrl: ''),
    Word(id: 'malfacila_001', esperanto: 'malfacila', english: 'difficult', pronunciation: 'mal-fa-CI-la', definition: 'Not easy, hard', examples: ['Tiu problemo estas malfacila (That problem is difficult)'], category: 'Prefixes', difficulty: 1, audioUrl: ''),
    Word(id: 'malforta_001', esperanto: 'malforta', english: 'weak', pronunciation: 'mal-FOR-ta', definition: 'Not strong, lacking power', examples: ['Post la malsano li estas malforta (After the illness he is weak)'], category: 'Prefixes', difficulty: 1, audioUrl: ''),
    
    // re- 前缀词汇
    Word(id: 'reveni_001', esperanto: 'reveni', english: 'to return', pronunciation: 're-VE-ni', definition: 'To come back', examples: ['Mi revenos morgaŭ (I will return tomorrow)'], category: 'Prefixes', difficulty: 1, audioUrl: ''),
    Word(id: 'refari_001', esperanto: 'refari', english: 'to redo', pronunciation: 're-FA-ri', definition: 'To do again', examples: ['Mi devas refari la taskon (I must redo the task)'], category: 'Prefixes', difficulty: 2, audioUrl: ''),
    Word(id: 'redoni_001', esperanto: 'redoni', english: 'to give back', pronunciation: 're-DO-ni', definition: 'To return something', examples: ['Redonu al mi mian libron (Give back my book to me)'], category: 'Prefixes', difficulty: 1, audioUrl: ''),
    Word(id: 'repreni_001', esperanto: 'repreni', english: 'to take back', pronunciation: 're-PRE-ni', definition: 'To reclaim', examples: ['Li reprenis sian vorton (He took back his word)'], category: 'Prefixes', difficulty: 2, audioUrl: ''),
    Word(id: 'rekomenco_001', esperanto: 'rekomenci', english: 'to restart', pronunciation: 're-ko-MEN-ci', definition: 'To begin again', examples: ['Ni rekomencos la ludon (We will restart the game)'], category: 'Prefixes', difficulty: 2, audioUrl: ''),
    
    // dis- 前缀词汇
    Word(id: 'disiri_001', esperanto: 'disiri', english: 'to scatter', pronunciation: 'dis-I-ri', definition: 'To go in different directions', examples: ['La homoj disiris post la kunsido (The people scattered after the meeting)'], category: 'Prefixes', difficulty: 2, audioUrl: ''),
    Word(id: 'disdoni_001', esperanto: 'disdoni', english: 'to distribute', pronunciation: 'dis-DO-ni', definition: 'To give out to many', examples: ['Li disdonis la librojn al la studentoj (He distributed the books to the students)'], category: 'Prefixes', difficulty: 2, audioUrl: ''),
    Word(id: 'disfali_001', esperanto: 'disfali', english: 'to fall apart', pronunciation: 'dis-FA-li', definition: 'To break into pieces', examples: ['La malnova domo disfalis (The old house fell apart)'], category: 'Prefixes', difficulty: 2, audioUrl: ''),
    
    // ek- 前缀词汇
    Word(id: 'ekkrii_001', esperanto: 'ekkrii', english: 'to cry out', pronunciation: 'ek-KRI-i', definition: 'To suddenly shout', examples: ['Ŝi ekkris pro timo (She cried out from fear)'], category: 'Prefixes', difficulty: 2, audioUrl: ''),
    Word(id: 'ekvidi_001', esperanto: 'ekvidi', english: 'to catch sight of', pronunciation: 'ek-VI-di', definition: 'To suddenly see', examples: ['Mi ekvidis belan birdon (I caught sight of a beautiful bird)'], category: 'Prefixes', difficulty: 2, audioUrl: ''),
    Word(id: 'eklerni_001', esperanto: 'eklerni', english: 'to start learning', pronunciation: 'ek-LER-ni', definition: 'To begin to learn', examples: ['Ŝi eklernis pianon (She started learning piano)'], category: 'Prefixes', difficulty: 2, audioUrl: ''),
  ];

  // 后缀词汇 (300个)
  static final List<Word> suffixWords = [
    // -ejo 后缀词汇 (地点)
    Word(id: 'lernejo_001', esperanto: 'lernejo', english: 'school', pronunciation: 'ler-NE-jo', definition: 'Place for learning', examples: ['La infanoj iras al lernejo (The children go to school)'], category: 'Suffixes', difficulty: 1, audioUrl: ''),
    Word(id: 'laborejo_001', esperanto: 'laborejo', english: 'workplace', pronunciation: 'la-bo-RE-jo', definition: 'Place for working', examples: ['Mia laborejo estas proksime (My workplace is nearby)'], category: 'Suffixes', difficulty: 2, audioUrl: ''),
    Word(id: 'vendejo_001', esperanto: 'vendejo', english: 'shop', pronunciation: 'ven-DE-jo', definition: 'Place for selling', examples: ['Ni iras al la vendejo (We go to the shop)'], category: 'Suffixes', difficulty: 1, audioUrl: ''),
    Word(id: 'kuracejo_001', esperanto: 'kuracejo', english: 'clinic', pronunciation: 'ku-ra-CE-jo', definition: 'Place for medical treatment', examples: ['Li vizitas la kuracejo (He visits the clinic)'], category: 'Suffixes', difficulty: 2, audioUrl: ''),
    Word(id: 'preĝejo_001', esperanto: 'preĝejo', english: 'church', pronunciation: 'pre-ĜE-jo', definition: 'Place for prayer', examples: ['Ni iras al preĝejo dimanĉe (We go to church on Sunday)'], category: 'Suffixes', difficulty: 2, audioUrl: ''),
    Word(id: 'bankejo_001', esperanto: 'bankejo', english: 'bank', pronunciation: 'ban-KE-jo', definition: 'Place for financial services', examples: ['Mi devas iri al la bankejo (I need to go to the bank)'], category: 'Suffixes', difficulty: 2, audioUrl: ''),
    Word(id: 'postejo_001', esperanto: 'postejo', english: 'post office', pronunciation: 'pos-TE-jo', definition: 'Place for postal services', examples: ['Ŝi laboras en la postejo (She works at the post office)'], category: 'Suffixes', difficulty: 2, audioUrl: ''),
    Word(id: 'biblioteko_001', esperanto: 'biblioteko', english: 'library', pronunciation: 'bi-bli-o-TE-ko', definition: 'Place for books', examples: ['Mi studas en la biblioteko (I study in the library)'], category: 'Suffixes', difficulty: 2, audioUrl: ''),
    
    // -ilo 后缀词汇 (工具)
    Word(id: 'tranĉilo_001', esperanto: 'tranĉilo', english: 'knife', pronunciation: 'tran-ĈI-lo', definition: 'Tool for cutting', examples: ['Mi uzas akran tranĉilon (I use a sharp knife)'], category: 'Suffixes', difficulty: 1, audioUrl: ''),
    Word(id: 'skribilo_001', esperanto: 'skribilo', english: 'pen', pronunciation: 'skri-BI-lo', definition: 'Tool for writing', examples: ['Ĉu vi havas skribilon? (Do you have a pen?)'], category: 'Suffixes', difficulty: 1, audioUrl: ''),
    Word(id: 'kombilo_001', esperanto: 'kombilo', english: 'comb', pronunciation: 'kom-BI-lo', definition: 'Tool for combing hair', examples: ['Ŝi uzas kombilon por sia hararo (She uses a comb for her hair)'], category: 'Suffixes', difficulty: 1, audioUrl: ''),
    Word(id: 'ludilo_001', esperanto: 'ludilo', english: 'toy', pronunciation: 'lu-DI-lo', definition: 'Thing for playing', examples: ['La infano havas multajn ludilon (The child has many toys)'], category: 'Suffixes', difficulty: 1, audioUrl: ''),
    Word(id: 'mezurilo_001', esperanto: 'mezurilo', english: 'measuring tool', pronunciation: 'me-zu-RI-lo', definition: 'Tool for measuring', examples: ['Uzu mezurilon por akurateco (Use a measuring tool for accuracy)'], category: 'Suffixes', difficulty: 2, audioUrl: ''),
    
    // -isto 后缀词汇 (职业)
    Word(id: 'kuracisto_001', esperanto: 'kuracisto', english: 'doctor', pronunciation: 'ku-ra-CIS-to', definition: 'Medical professional', examples: ['La kuracisto ekzamenas la pacienton (The doctor examines the patient)'], category: 'Suffixes', difficulty: 1, audioUrl: ''),
    Word(id: 'instruisto_001', esperanto: 'instruisto', english: 'teacher', pronunciation: 'ins-tru-IS-to', definition: 'Educational professional', examples: ['Mia instruisto estas tre bona (My teacher is very good)'], category: 'Suffixes', difficulty: 1, audioUrl: ''),
    Word(id: 'artisto_001', esperanto: 'artisto', english: 'artist', pronunciation: 'ar-TIS-to', definition: 'Creative professional', examples: ['La artisto pentras belan bildon (The artist paints a beautiful picture)'], category: 'Suffixes', difficulty: 2, audioUrl: ''),
    Word(id: 'muzikisto_001', esperanto: 'muzikisto', english: 'musician', pronunciation: 'mu-zi-KIS-to', definition: 'Music professional', examples: ['La muzikisto ludas pianon (The musician plays piano)'], category: 'Suffixes', difficulty: 2, audioUrl: ''),
    Word(id: 'verkisto_001', esperanto: 'verkisto', english: 'writer', pronunciation: 'ver-KIS-to', definition: 'Writing professional', examples: ['La verkisto skribas novan romanon (The writer writes a new novel)'], category: 'Suffixes', difficulty: 2, audioUrl: ''),
    Word(id: 'bakisto_001', esperanto: 'bakisto', english: 'baker', pronunciation: 'ba-KIS-to', definition: 'Bread-making professional', examples: ['La bakisto bakas freŝan panon (The baker bakes fresh bread)'], category: 'Suffixes', difficulty: 2, audioUrl: ''),
    Word(id: 'vendisto_001', esperanto: 'vendisto', english: 'seller', pronunciation: 'ven-DIS-to', definition: 'Sales professional', examples: ['La vendisto helpas la klientojn (The seller helps the customers)'], category: 'Suffixes', difficulty: 2, audioUrl: ''),
  ];

  // 形容词词根 (200个)
  static final List<Word> adjectiveRoots = [
    // 基础形容词
    Word(id: 'bona_001', esperanto: 'bona', english: 'good', pronunciation: 'BO-na', definition: 'Having positive qualities', examples: ['Tio estas bona ideo (That is a good idea)'], category: 'Adjectives', difficulty: 1, audioUrl: ''),
    Word(id: 'bela_001', esperanto: 'bela', english: 'beautiful', pronunciation: 'BE-la', definition: 'Pleasing to look at', examples: ['Ŝi estas tre bela (She is very beautiful)'], category: 'Adjectives', difficulty: 1, audioUrl: ''),
    Word(id: 'granda_001', esperanto: 'granda', english: 'big', pronunciation: 'GRAN-da', definition: 'Large in size', examples: ['Mi havas grandan domon (I have a big house)'], category: 'Adjectives', difficulty: 1, audioUrl: ''),
    Word(id: 'nova_001', esperanto: 'nova', english: 'new', pronunciation: 'NO-va', definition: 'Recently made or created', examples: ['Mi aĉetis novan aŭton (I bought a new car)'], category: 'Adjectives', difficulty: 1, audioUrl: ''),
    Word(id: 'juna_001', esperanto: 'juna', english: 'young', pronunciation: 'JU-na', definition: 'Having lived for a short time', examples: ['La juna knabo (The young boy)'], category: 'Adjectives', difficulty: 1, audioUrl: ''),
    Word(id: 'riĉa_001', esperanto: 'riĉa', english: 'rich', pronunciation: 'RI-ĉa', definition: 'Having much money', examples: ['Li estas tre riĉa homo (He is a very rich person)'], category: 'Adjectives', difficulty: 1, audioUrl: ''),
    Word(id: 'sana_001', esperanto: 'sana', english: 'healthy', pronunciation: 'SA-na', definition: 'In good physical condition', examples: ['Mi sentas min sana (I feel healthy)'], category: 'Adjectives', difficulty: 1, audioUrl: ''),
    Word(id: 'varma_001', esperanto: 'varma', english: 'warm', pronunciation: 'VAR-ma', definition: 'Having heat', examples: ['Hodiaŭ estas varma tago (Today is a warm day)'], category: 'Adjectives', difficulty: 1, audioUrl: ''),
    Word(id: 'rapida_001', esperanto: 'rapida', english: 'fast', pronunciation: 'ra-PI-da', definition: 'Moving quickly', examples: ['La rapida aŭto (The fast car)'], category: 'Adjectives', difficulty: 1, audioUrl: ''),
    Word(id: 'facila_001', esperanto: 'facila', english: 'easy', pronunciation: 'fa-CI-la', definition: 'Not difficult', examples: ['Tiu tasko estas facila (That task is easy)'], category: 'Adjectives', difficulty: 1, audioUrl: ''),
    Word(id: 'forta_001', esperanto: 'forta', english: 'strong', pronunciation: 'FOR-ta', definition: 'Having power or strength', examples: ['Li estas tre forta (He is very strong)'], category: 'Adjectives', difficulty: 1, audioUrl: ''),
    Word(id: 'alta_001', esperanto: 'alta', english: 'tall/high', pronunciation: 'AL-ta', definition: 'Having great height', examples: ['La alta monto (The high mountain)'], category: 'Adjectives', difficulty: 1, audioUrl: ''),
    Word(id: 'longa_001', esperanto: 'longa', english: 'long', pronunciation: 'LON-ga', definition: 'Having great length', examples: ['La longa vojo (The long road)'], category: 'Adjectives', difficulty: 1, audioUrl: ''),
    Word(id: 'larĝa_001', esperanto: 'larĝa', english: 'wide', pronunciation: 'LAR-ĝa', definition: 'Having great width', examples: ['La larĝa rivero (The wide river)'], category: 'Adjectives', difficulty: 1, audioUrl: ''),
    Word(id: 'profunda_001', esperanto: 'profunda', english: 'deep', pronunciation: 'pro-FUN-da', definition: 'Extending far down', examples: ['La profunda lago (The deep lake)'], category: 'Adjectives', difficulty: 2, audioUrl: ''),
    
    // 颜色形容词
    Word(id: 'ruĝa_001', esperanto: 'ruĝa', english: 'red', pronunciation: 'RU-ĝa', definition: 'Color of blood', examples: ['La ruĝa rozo (The red rose)'], category: 'Colors', difficulty: 1, audioUrl: ''),
    Word(id: 'blua_001', esperanto: 'blua', english: 'blue', pronunciation: 'BLU-a', definition: 'Color of sky', examples: ['La blua ĉielo (The blue sky)'], category: 'Colors', difficulty: 1, audioUrl: ''),
    Word(id: 'verda_001', esperanto: 'verda', english: 'green', pronunciation: 'VER-da', definition: 'Color of grass', examples: ['La verda herbo (The green grass)'], category: 'Colors', difficulty: 1, audioUrl: ''),
    Word(id: 'flava_001', esperanto: 'flava', english: 'yellow', pronunciation: 'FLA-va', definition: 'Color of sun', examples: ['La flava suno (The yellow sun)'], category: 'Colors', difficulty: 1, audioUrl: ''),
    Word(id: 'nigra_001', esperanto: 'nigra', english: 'black', pronunciation: 'NIG-ra', definition: 'Darkest color', examples: ['La nigra nokto (The black night)'], category: 'Colors', difficulty: 1, audioUrl: ''),
    Word(id: 'blanka_001', esperanto: 'blanka', english: 'white', pronunciation: 'BLAN-ka', definition: 'Lightest color', examples: ['La blanka neĝo (The white snow)'], category: 'Colors', difficulty: 1, audioUrl: ''),
    Word(id: 'griza_001', esperanto: 'griza', english: 'gray', pronunciation: 'GRI-za', definition: 'Color between black and white', examples: ['La griza nubo (The gray cloud)'], category: 'Colors', difficulty: 1, audioUrl: ''),
    Word(id: 'bruna_001', esperanto: 'bruna', english: 'brown', pronunciation: 'BRU-na', definition: 'Color of earth', examples: ['La bruna tero (The brown earth)'], category: 'Colors', difficulty: 1, audioUrl: ''),
    Word(id: 'purpura_001', esperanto: 'purpura', english: 'purple', pronunciation: 'pur-PU-ra', definition: 'Color of violet', examples: ['La purpura floro (The purple flower)'], category: 'Colors', difficulty: 2, audioUrl: ''),
    Word(id: 'oranĝa_001', esperanto: 'oranĝa', english: 'orange', pronunciation: 'o-RAN-ĝa', definition: 'Color of orange fruit', examples: ['La oranĝa frukto (The orange fruit)'], category: 'Colors', difficulty: 1, audioUrl: ''),
  ];

  // 数字词汇 (100个)
  static final List<Word> numberWords = [
    // 基本数字
    Word(id: 'nul_001', esperanto: 'nul', english: 'zero', pronunciation: 'NUL', definition: 'The number 0', examples: ['Nul plus unu estas unu (Zero plus one is one)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'unu_001', esperanto: 'unu', english: 'one', pronunciation: 'U-nu', definition: 'The number 1', examples: ['Mi havas unu hundon (I have one dog)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'du_001', esperanto: 'du', english: 'two', pronunciation: 'DU', definition: 'The number 2', examples: ['Du plus du estas kvar (Two plus two is four)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'tri_001', esperanto: 'tri', english: 'three', pronunciation: 'TRI', definition: 'The number 3', examples: ['Mi havas tri fratojn (I have three brothers)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'kvar_001', esperanto: 'kvar', english: 'four', pronunciation: 'KVAR', definition: 'The number 4', examples: ['La tablo havas kvar piedojn (The table has four legs)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'kvin_001', esperanto: 'kvin', english: 'five', pronunciation: 'KVIN', definition: 'The number 5', examples: ['Mi havas kvin fingrojn (I have five fingers)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'ses_001', esperanto: 'ses', english: 'six', pronunciation: 'SES', definition: 'The number 6', examples: ['Ses horoj (Six hours)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'sep_001', esperanto: 'sep', english: 'seven', pronunciation: 'SEP', definition: 'The number 7', examples: ['Sep tagoj en semajno (Seven days in a week)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'ok_001', esperanto: 'ok', english: 'eight', pronunciation: 'OK', definition: 'The number 8', examples: ['Ok horoj da dormo (Eight hours of sleep)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'naŭ_001', esperanto: 'naŭ', english: 'nine', pronunciation: 'NAŬ', definition: 'The number 9', examples: ['Naŭ monatoj (Nine months)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'dek_001', esperanto: 'dek', english: 'ten', pronunciation: 'DEK', definition: 'The number 10', examples: ['Dek jaroj (Ten years)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'cent_001', esperanto: 'cent', english: 'hundred', pronunciation: 'CENT', definition: 'The number 100', examples: ['Cent homoj (One hundred people)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'mil_001', esperanto: 'mil', english: 'thousand', pronunciation: 'MIL', definition: 'The number 1000', examples: ['Mil jaroj (One thousand years)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    
    // 序数词
    Word(id: 'unua_001', esperanto: 'unua', english: 'first', pronunciation: 'U-nu-a', definition: 'Number 1 in order', examples: ['La unua tago (The first day)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'dua_001', esperanto: 'dua', english: 'second', pronunciation: 'DU-a', definition: 'Number 2 in order', examples: ['La dua libro (The second book)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'tria_001', esperanto: 'tria', english: 'third', pronunciation: 'TRI-a', definition: 'Number 3 in order', examples: ['La tria etaĝo (The third floor)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'kvara_001', esperanto: 'kvara', english: 'fourth', pronunciation: 'KVA-ra', definition: 'Number 4 in order', examples: ['La kvara monato (The fourth month)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'kvina_001', esperanto: 'kvina', english: 'fifth', pronunciation: 'KVI-na', definition: 'Number 5 in order', examples: ['La kvina kapitolo (The fifth chapter)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
    Word(id: 'lasta_001', esperanto: 'lasta', english: 'last', pronunciation: 'LAS-ta', definition: 'Final in order', examples: ['La lasta tago (The last day)'], category: 'Numbers', difficulty: 1, audioUrl: ''),
  ];

  // 获取所有词汇
  static List<Word> getAllWords() {
    return [
      ...basicVerbRoots,
      ...nounRoots,
      ...prefixWords,
      ...suffixWords,
      ...adjectiveRoots,
      ...numberWords,
    ];
  }

  // 根据类别获取词汇
  static List<Word> getWordsByCategory(String category) {
    return getAllWords().where((word) => word.category == category).toList();
  }

  // 获取所有类别
  static List<String> getAllCategories() {
    final categories = getAllWords().map((word) => word.category).toSet().toList();
    categories.sort();
    return categories;
  }
} 